home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_13_04
/
chapman
/
errmgr.hpp
< prev
next >
Wrap
Text File
|
1994-03-01
|
2KB
|
56 lines
Listing 4.
/* errmgr.hpp fragment */
class error_mgr {
public:
error_mgr(void);
~error_mgr(void);
int define_dictionary(const char *filename);
/* returns handler just hidden */
failure_handler *define_handler(
failure_handler *new_handler);
/* returns handler just popped */
failure_handler *restore_handler(void);
void fail(const char *fmt,...);
void vfail(const char *fmt,va_list ap);
void error(const char *fmt,...);
void verror(const char *fmt,va_list ap);
void warn(const char *fmt,...);
void vwarn(const char *fmt,va_list ap);
void post(const char *fmt,...);
void vpost(const char *fmt,va_list ap);
const char *message(const char *fmt,
char *msg_line,int len);
int set_assert_flag(int asserts_on);
static int assertions_off(void)
{ return asserts_off; }
int assert_failed(
const char *exp,const char *fname,
unsigned linenum);
private:
void setup(void);
static failure_handler *curr_handler,
*default_handler;
static int is_set_up,asserts_off;
static error_dict_list *error_dicts;
static ptr_stack *handler_stack;
int find_replacement(
const char *key,char *msg_line,
int linelen);
/* unimplemented: */
error_mgr(const error_mgr &other);
error_mgr &operator =(const error_mgr &other);
};
extern error_mgr err_mgr;
#define ASSERT(e) \
((void)(err_mgr.assertions_off() || \
(e) || \
err_mgr.assert_failed(#e,__FILE__,__LINE__)))